A computer system may include a storage device for storing information associated with the computer system and its resources. For example, the computer system may include a processor, and the processor may execute software that utilizes the storage device, such as an operating system and/or other software applications. The software or applications may request various input and output (I/O) operations involving the storage device, such as reading and writing data on the storage device. In some cases, however, a storage device may be unable to process I/O operations at the same rate that those operations are requested by applications, for example, due to a slow rate at which the storage device can access its primary data storage. Accordingly, some storage devices may include a lower latency cache in addition to their primary data storage mechanism in order to improve latency for processing I/O requests. For example, a storage device may temporarily store data in the cache instead of primary storage, and the storage device may later flush the cache by writing any dirty (e.g., unsynchronized) data from the cache to primary storage. Flushing the cache while application I/O is being processed, however, may negatively impact the performance of the application I/O.
Like reference numbers and designations in the various drawings indicate like elements.